package com.learn.core.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonInclude;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * Description
 *
 * @author zhaohongyu
 * @ClassName LExam
 * @date 2021.03.25 10:23
 * @describe 考次
 */
@TableName("l_exam")
@JsonInclude(JsonInclude.Include.NON_NULL)
@ApiModel(value="LExam对象", description="考次")
public class LExam implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(value = "exam_id", type = IdType.AUTO)
    private Integer examId;

    @ApiModelProperty(value = "考次编号")
    @TableField("exam_code")
    private String examCode;

    @ApiModelProperty(value = "考次名称")
    @TableField("exam_name")
    private String examName;

    @ApiModelProperty(value = "主办单位")
    @TableField("organization_id")
    private Integer organizationId;

    @TableField(exist = false)
    private String organizationName;

    public String getOrganizationName() {
        return organizationName;
    }

    public void setOrganizationName(String organizationName) {
        this.organizationName = organizationName;
    }

    @ApiModelProperty(value = "所属分类")
    @TableField("exam_sort_id")
    private Integer examSortId;

    @TableField(exist = false)
    private String examSortName;

    public String getExamSortName() {
        return examSortName;
    }

    public void setExamSortName(String examSortName) {
        this.examSortName = examSortName;
    }

    @ApiModelProperty(value = "考次封面")
    @TableField("exam_cover_url")
    private String examCoverUrl;

    @ApiModelProperty(value = "失效时间")
    @TableField("failure_time")
    private String failureTime;

    @ApiModelProperty(value = "计时方式")
    @TableField("timing_type")
    private String timingType;

    @ApiModelProperty(value = "答题时间")
    @TableField("timing_start_time")
    private String timingStartTime;

    @ApiModelProperty(value = "交卷时间")
    @TableField("timing_end_time")
    private String timingEndTime;

    @ApiModelProperty(value = "成绩公示类型")
    @TableField("achievement_type")
    private String achievementType;

    @ApiModelProperty(value = "是否允许考生查看详情；0 不允许 1允许")
    @TableField("is_examinee")
    private String isExaminee;

    @ApiModelProperty(value = "交卷限制")
    @TableField("exam_submit")
    private String examSubmit;

    @ApiModelProperty(value = "次数限制")
    @TableField("exam_frequency")
    private String examFrequency;

    @ApiModelProperty(value = "考试时间")
    @TableField("exam_notice")
    private String examNotice;

    @ApiModelProperty(value = "试卷首语")
    @TableField("exam_prologue")
    private String examPrologue;

    @ApiModelProperty(value = "出题方式 1固定试卷 2随机试卷")
    @TableField("assign_topic")
    private String assignTopic;

    @ApiModelProperty(value = "随机几份试卷")
    @TableField("random_several")
    private Integer randomSeveral;

    @ApiModelProperty(value = "分数定义")
    @TableField("fraction_type")
    private String fractionType;

    @ApiModelProperty(value = "试卷总分")
    @TableField("total_points")
    private String totalPoints;

    @ApiModelProperty(value = "及格分数")
    @TableField("passing_mark")
    private String passingMark;

    @ApiModelProperty(value = "试题总数")
    @TableField("exam_total")
    private String examTotal;

    @ApiModelProperty(value = "发布时间")
    @TableField("release_time")
    private Date releaseTime;

    @ApiModelProperty(value = "发布状态")
    @TableField("release_state")
    private String releaseState;

    @ApiModelProperty(value = "归档状态")
    @TableField("exam_file")
    private String examFile;

    @TableField("create_time")
    private Date createTime;

    @TableField("create_user")
    private String createUser;

    @TableField("update_time")
    private Date updateTime;

    @TableField("update_user")
    private String updateUser;

    @ApiModelProperty(value = "所属分类 1考试2模拟")
    @TableField("type")
    private String type;

    @ApiModelProperty(value = "题库id")
    @TableField("questions_sort_id")
    private Integer questionsSortId;

    @ApiModelProperty(value = "知识点")
    @TableField("knowledge")
    private String knowledge;

    @ApiModelProperty(value = "难度")
    @TableField("difficulty")
    private String difficulty;

    @TableField(exist = false)
    private String userExam;

    @TableField(exist = false)
    private List<LExtractQuestions> lExtractQuestionsList;

    @ApiModelProperty(value = "报名人数")
    @TableField(exist = false)
    private Integer enrollNum;

    @ApiModelProperty(value = "学习人数")
    @TableField(exist = false)
    private Integer examNum;

    @ApiModelProperty(value = "结业人数")
    @TableField(exist = false)
    private Integer completeNum;

    @ApiModelProperty(value = "结业率")
    @TableField(exist = false)
    private String completeRate;

    @ApiModelProperty(value = "平均分")
    @TableField(exist = false)
    private String average;

    @ApiModelProperty(value = "最高分")
    @TableField(exist = false)
    private String maxScores;

    @ApiModelProperty(value = "最低分")
    @TableField(exist = false)
    private String minScores;

    @TableField(exist = false)
    private Integer count;

    @TableField(exist = false)
    private Integer countType;

    @TableField(exist = false)
    private LExamTarget lExamTarget;

    public LExamTarget getlExamTarget() {
        return lExamTarget;
    }

    public void setlExamTarget(LExamTarget lExamTarget) {
        this.lExamTarget = lExamTarget;
    }

    public Integer getCountType() {
        return countType;
    }

    public void setCountType(Integer countType) {
        this.countType = countType;
    }

    public Integer getCount() {
        return count;
    }

    public void setCount(Integer count) {
        this.count = count;
    }

    public String getAverage() {
        return average;
    }

    public void setAverage(String average) {
        this.average = average;
    }

    public String getMaxScores() {
        return maxScores;
    }

    public void setMaxScores(String maxScores) {
        this.maxScores = maxScores;
    }

    public String getMinScores() {
        return minScores;
    }

    public void setMinScores(String minScores) {
        this.minScores = minScores;
    }

    public Integer getEnrollNum() {
        return enrollNum;
    }

    public void setEnrollNum(Integer enrollNum) {
        this.enrollNum = enrollNum;
    }

    public Integer getExamNum() {
        return examNum;
    }

    public void setExamNum(Integer examNum) {
        this.examNum = examNum;
    }

    public Integer getCompleteNum() {
        return completeNum;
    }

    public void setCompleteNum(Integer completeNum) {
        this.completeNum = completeNum;
    }

    public String getCompleteRate() {
        return completeRate;
    }

    public void setCompleteRate(String completeRate) {
        this.completeRate = completeRate;
    }

    public List<LExtractQuestions> getlExtractQuestionsList() {
        return lExtractQuestionsList;
    }

    public void setlExtractQuestionsList(List<LExtractQuestions> lExtractQuestionsList) {
        this.lExtractQuestionsList = lExtractQuestionsList;
    }

    public Integer getQuestionsSortId() {
        return questionsSortId;
    }

    public void setQuestionsSortId(Integer questionsSortId) {
        this.questionsSortId = questionsSortId;
    }

    public String getKnowledge() {
        return knowledge;
    }

    public void setKnowledge(String knowledge) {
        this.knowledge = knowledge;
    }

    public String getDifficulty() {
        return difficulty;
    }

    public void setDifficulty(String difficulty) {
        this.difficulty = difficulty;
    }

    public String getUserExam() {
        return userExam;
    }

    public void setUserExam(String userExam) {
        this.userExam = userExam;
    }

    public Integer getExamId() {
        return examId;
    }

    public void setExamId(Integer examId) {
        this.examId = examId;
    }

    public String getExamCode() {
        return examCode;
    }

    public void setExamCode(String examCode) {
        this.examCode = examCode;
    }

    public String getExamName() {
        return examName;
    }

    public void setExamName(String examName) {
        this.examName = examName;
    }

    public Integer getOrganizationId() {
        return organizationId;
    }

    public void setOrganizationId(Integer organizationId) {
        this.organizationId = organizationId;
    }

    public Integer getExamSortId() {
        return examSortId;
    }

    public void setExamSortId(Integer examSortId) {
        this.examSortId = examSortId;
    }

    public String getExamCoverUrl() {
        return examCoverUrl;
    }

    public void setExamCoverUrl(String examCoverUrl) {
        this.examCoverUrl = examCoverUrl;
    }

    public String getFailureTime() {
        return failureTime;
    }

    public void setFailureTime(String failureTime) {
        this.failureTime = failureTime;
    }

    public String getTimingType() {
        return timingType;
    }

    public void setTimingType(String timingType) {
        this.timingType = timingType;
    }

    public String getTimingStartTime() {
        return timingStartTime;
    }

    public void setTimingStartTime(String timingStartTime) {
        this.timingStartTime = timingStartTime;
    }

    public String getTimingEndTime() {
        return timingEndTime;
    }

    public void setTimingEndTime(String timingEndTime) {
        this.timingEndTime = timingEndTime;
    }

    public String getAchievementType() {
        return achievementType;
    }

    public void setAchievementType(String achievementType) {
        this.achievementType = achievementType;
    }

    public String getIsExaminee() {
        return isExaminee;
    }

    public void setIsExaminee(String isExaminee) {
        this.isExaminee = isExaminee;
    }

    public String getExamSubmit() {
        return examSubmit;
    }

    public void setExamSubmit(String examSubmit) {
        this.examSubmit = examSubmit;
    }

    public String getExamFrequency() {
        return examFrequency;
    }

    public void setExamFrequency(String examFrequency) {
        this.examFrequency = examFrequency;
    }

    public String getExamNotice() {
        return examNotice;
    }

    public void setExamNotice(String examNotice) {
        this.examNotice = examNotice;
    }

    public String getExamPrologue() {
        return examPrologue;
    }

    public void setExamPrologue(String examPrologue) {
        this.examPrologue = examPrologue;
    }

    public String getAssignTopic() {
        return assignTopic;
    }

    public void setAssignTopic(String assignTopic) {
        this.assignTopic = assignTopic;
    }

    public Integer getRandomSeveral() {
        return randomSeveral;
    }

    public void setRandomSeveral(Integer randomSeveral) {
        this.randomSeveral = randomSeveral;
    }

    public String getFractionType() {
        return fractionType;
    }

    public void setFractionType(String fractionType) {
        this.fractionType = fractionType;
    }

    public String getTotalPoints() {
        return totalPoints;
    }

    public void setTotalPoints(String totalPoints) {
        this.totalPoints = totalPoints;
    }

    public String getPassingMark() {
        return passingMark;
    }

    public void setPassingMark(String passingMark) {
        this.passingMark = passingMark;
    }

    public String getExamTotal() {
        return examTotal;
    }

    public void setExamTotal(String examTotal) {
        this.examTotal = examTotal;
    }

    public String getReleaseState() {
        return releaseState;
    }

    public void setReleaseState(String releaseState) {
        this.releaseState = releaseState;
    }

    public String getExamFile() {
        return examFile;
    }

    public void setExamFile(String examFile) {
        this.examFile = examFile;
    }

    public String getCreateUser() {
        return createUser;
    }

    public void setCreateUser(String createUser) {
        this.createUser = createUser;
    }

    public Date getReleaseTime() {
        return releaseTime;
    }

    public void setReleaseTime(Date releaseTime) {
        this.releaseTime = releaseTime;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public Date getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    public String getUpdateUser() {
        return updateUser;
    }

    public void setUpdateUser(String updateUser) {
        this.updateUser = updateUser;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }
}
